package com.alameda.manage.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Map;

/**
 * 项目管理数据显示对象
 *
 * @author Lv
 * @date 2024/08/04
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ManageVO", description = "项目管理")
public class ManageVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    private Long id;

    /**
     * 项目名称
     */
    @ApiModelProperty(value = "项目名称")
    private String projectName;

    /**
     * 项目描述
     */
    @ApiModelProperty(value = "项目描述")
    private String projectRemark;

    /**
     * 项目性质（1交付 2自研）
     */
    @ApiModelProperty(value = "项目性质（1交付 2自研）")
    private Integer projectState;

    /**
     * 项目开始期限
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "项目开始期限")
    private Date projectStartTime;

    /**
     * 项目结束期限
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "项目结束期限")
    private Date projectEndTime;

    /**
     * 项目进度
     */
    @ApiModelProperty(value = "项目进度")
    private String projectSchedule;

    /**
     * 创建人id
     */
    @ApiModelProperty(value = "创建人id")
    private Long createId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    /**
     * 修改人id
     */
    @ApiModelProperty(value = "修改人id")
    private Long updateId;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标识符  0 未删除   1 已删除
     */
    @ApiModelProperty(value = "逻辑删除标识符  0 未删除   1 已删除")
    private Integer deleteFlag;

    /**
     * 扩展属性
     */
    @ApiModelProperty(value = "扩展属性")
    private Map<String, String> extData;

    /**
     * 项目类型
     */
    @ApiModelProperty(value = "项目类型")
    private String projectStateRemark;
}
